﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CommandLine;
using CommandLine.Text;

namespace GurLoader.CommandLineOptions
{
    public interface ICommandLineOptions
    {
        /// <summary>
        /// Returns the type of command this is an options for.
        /// </summary>
        Command CommandAction { get; }

        /// <summary>
        /// Performs object self validation. This is mainly added as a hack since the CommandLine library does
        /// not properly validate required Value's in an options. If there are no instances of that Value on
        /// the command line, it performs no validation!
        /// </summary>
        void Validate();
    }
}
